<?php
include('./SourceCode/Session.php');
include('./SourceCode/mysqli_connect.php');
include('./SourceCode/functions.php');
$header_name = 'Trang tạo phòng chat';
include ('./Includes/Header.php');
include('./Includes/Menu.php');

//Kiểm tra người dùng có đăng nhập hay chưa
Is_Login();
if($_SERVER['REQUEST_METHOD']=='POST')
{
    //Tạo mảng Error để kiểm soát lỗi
    $errors = array();
    //Kiểm tra biến roomname truyền từ form
    if(preg_match('/^[\w]{2,15}$/',trim($_POST['roomname']))){
        //Nếu biến POST chứa roomname thỏa điều kiện thì lưu vào biến
        $r_name = mysqli_real_escape_string($dbc,trim($_POST['roomname']));
    }else{
        //Không thỏa thì lưu vào biến Error
        $errors[] = 'roomname';
    }
    //Kiểm tra biến POST của dropdownlist gửi lên từ form
    if(isset($_POST['access'])){
        //Nếu có biến POST của dropdownlist
        //Lưu giá trị của fropdownlist vào biến để xử lý
        $private = $_POST['access'];
        if($private==1){
            //Nếu người dùng chọn là Riêng tức giá trị dropdownlist là 1 thì kiểm tra các checkbox users
            if(!isset($_POST['users'])){
                //Nếu không có các checkbox user thì lưu vào biến Error
                $errors[] = 'users';
            }else{
                //Nếu có checkbox thì lưu vào biến để xử lý sau
                $users_list = $_POST['users'];
            }
        }
    }else{
        //Nếu không có giá trị từ dropdownlist gửi lên thì báo lỗi.
        $errors[] = 'access';
    }
    if(empty($errors)){
        //Nếu biến Error không có giá trị tức các trường đều thỏa điều kiện thì thực hiện
        //Tạo câu lệnh truy vấn để insert thêm 1 cột vào trường groupchat
        $query = "INSERT INTO `groupchat`(user_id,group_name,group_private) VALUES({$_SESSION['uid']},'{$r_name}',{$private})";
        $result = mysqli_query($dbc, $query);
        if(mysqli_affected_rows($dbc)>0){
            //Nếu insert thành công tiến hành lấy group_id của cột vừa insert vào bằng tên group
            $query_s = "SELECT `group_id` FROM `groupchat` WHERE `group_name`='{$r_name}'";
            $result_s = mysqli_query($dbc, $query_s);
            if(mysqli_num_rows($result_s)==1){
                //Khi lấy được id của group ta lưu vào biến $g_id
                list($g_id) = mysqli_fetch_array($result_s,MYSQLI_NUM);
                //Khởi tạo biến $check để kiểm tra lỗi
                $check = 0;
                //Xét trường hợp của phòng chat, nếu phần private của group chat là riêng tư tức giá trị của dropdownlist là 1
                if($private==1){
                    //Nếu ở chế độ riêng tạo vòng lặp qua các checkbox của người dùng
                    for($i=0;$i<count($users_list);$i++){
                        //Tạo câu lệnh truy vấn lưu vào bảng connect
                        $query_add = "INSERT INTO `connect`(group_id,user_id) VALUES({$g_id},{$users_list[$i]})";
                        $result_add = mysqli_query($dbc, $query_add);
                        if(mysqli_affected_rows($dbc)>0){
                            //Nếu lưu thành công thì tăng biến $check lên 1 giá trị
                            $check += 1;
                        }
                    }
                    //Sau khi lặp qua người dùng tiến hành kết nối user tạo phòng với phòng chat
                    $query_add = "INSERT INTO `connect`(group_id,user_id) VALUES({$g_id},{$_SESSION['uid']})";
                    $result_add = mysqli_query($dbc, $query_add);
                    if(mysqli_affected_rows($dbc)>0){
                        //Nếu lưu thành công thì tăng biến $check lên 1 giá trị
                        $check += 1;
                    }
                }else{
                    //Nếu ở chế độ chung thì truy vấn vào CSDL lấy thông tin của người dùng
                    $query_s = "SELECT `user_id` FROM `user`";
                    $result_s = mysqli_query($dbc, $query_s);
                    if(mysqli_num_rows($result_s)>0){
                        //Nếu truy vấn được thì lưu giá trị vào mảng bằng vòng lặp
                        while($uid = mysqli_fetch_array($result_s,MYSQLI_ASSOC)){
                            //Mỗi lần lặp thì lưu vào CSDL trong bảng connect
                            $query_add = "INSERT INTO `connect`(group_id,user_id) VALUES({$g_id},{$uid['user_id']})";
                            $result_add = mysqli_query($dbc, $query_add);
                            if(mysqli_affected_rows($dbc)>0){
                                //Nếu lưu thành công thì tăng giá trị biến $check lên 1 giá trị
                                $check += 1;
                            }
                        }
                    }
                }
                if($check>0){
                        //Nếu biến check >0 thì các user đã lưu thành công vào bảng connect => tạo phòng chat thành công.
                        $message = "Tạo phòng chat thành công !";
                    }else{
                        //Nếu biến check <=0 thì các user không lưu thành công vào bảng connect => tạo phòng chat thất bại.
                        $message = "Tạo phòng chat thất bại !";
                    }
            }else{
                $message = "Tạo phòng chat thất bại !";
            }
        }
    }else{
        $message = "Vui lòng kiểm tra lại thông tin !";
    }
}
?>
<div id='login-area'>
            <div id='login-head'>
                Tạo phòng chat
            </div>   
            <form action='' method='POST'>
                <div id='error-mess'><?php if(isset($message)){ echo $message;} ?></div>
                <div class='login-div'>
                    <div class='login-img'>
                        <img src='Images/chat-room.png' width='60' height='60' alt='img-user'/>
                        <div class='login-hidden-info'>
                            Tên phòng chat không thể trùng nhau, tên phòng chat dùng để phân biệt các phòng chat với nhau.<br/>
                            Tên phòng chat phải có ít nhất 2 ký tự và không dùng ký tự đặc biệt.<br/>
                            <span class='meo'>Mẹo:</span> bạn có thể ấn nút kiểm tra để xác định mức độ hợp lệ.
                        </div>
                    </div>
                <div class='login-input'>
                    <label class='login-label' for='roomname'>
                        Tên phòng chat: <span id='roomname-checked' class='check-done'></span>
                    </label><br>
                    <input type='text' name='roomname' id='roomname' value='' size='20' tabindex='1' class='login-textbox'>
                    
                </div>
                    <div class='check-area'>
                        <div id='roomname-check' class='check-button'>Kiểm tra</div>
                    </div>
                </div><!-- End Login-div -->               
                
                <div class='login-div'>
                    <div class='login-img'>
                        <img src='Images/access.png' width='60' height='60' alt='img-user'/>
                        <div class='login-hidden-info'>
                            Mức độ riêng tư:<br/>
                            - Chung: Bất cứ ai cũng có thể tham gia phòng chat này.<br/>
                            - Riêng: Chỉ có những người bạn cho phép mới có thể tham gia.<br/>
                        </div>
                    </div>
                <div class='login-input'>
                    <label class='login-label' for='access'>Mức độ riêng tư:</label><br>
                    <select name='access' tabindex='5' class='login-select' id='access-select'>
                        <option value='0'>Chung</option>
                        <option value='1'>Riêng</option>
                    </select>
                </div>
                </div><!-- End Login-div -->
                
                <div id='ajax-userlist'>
                    <div class='label'>Chọn Users:</div>
                    <ul id='user-check-list'>
                        
                    </ul>
                </div><!-- End Login-div -->
                
                <div id='login-input-area'>
                    <div><input type='submit' name='submit' value='Tạo phòng chat' tabindex='6'></div>                    
                </div>
            </form>
        </div>
<?php
include('./Includes/Footer.php');